home *** CD-ROM | disk | FTP | other *** search
- unit Graph;
-
- interface
-
- uses
- SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
- Forms, Dialogs, Buttons, ExtCtrls, StdCtrls, DB, DBTables, VBXCtrl,
- ChartFx, { Contained in C:\Delphi\Source\Samples }
- Chart2fx;
-
- type
- TGraphForm = class(TForm)
- ChartFX1: TChartFX;
- DataSource1: TDataSource;
- Query1: TQuery;
- SQLEdit: TMemo;
- Panel1: TPanel;
- SQLExexBtn: TSpeedButton;
- CloseBtn: TSpeedButton;
- procedure SQLExexBtnClick(Sender: TObject);
- procedure CloseBtnClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- GraphForm: TGraphForm;
-
- implementation
-
- {$R *.DFM}
-
- procedure TGraphForm.SQLExexBtnClick(Sender: TObject);
- var
- NumRecs : Integer; {- Data Counter -}
- NumCols : Integer; {- Number of Columns in the Data-}
- ColCntr : Integer; {- Index for the For Loop -}
- begin
- {-Assign Properties to TQuery & TDataSource Components at Run time -}
- DataSource1.DataSet := Query1; {- Name of the TQuery Component -}
- Query1.DatabaseName := 'DBDEMOS'; {- BDE Database Alias -}
- Query1.close; {- Close Any Pending Queries -}
- Query1.SQL.Clear; {- Clear Previous SQL Query Text-}
- Query1.SQL.Add(SQLEdit.Text); {- Pass the SQL Query Text -}
- Query1.Active := True; {- Run The Query -}
-
- NumRecs := Query1.RecordCount; {- Count the Number of Records -}
- {- Found by the Query -}
- NumCols := Query1.FieldCount;{- Number of Fields in the DataSet -}
-
- {- Fill Data Assuming MultiColumns -}
- for ColCntr := 0 to NumCols-2 do
- begin
- { Initialise ChartFx with NumberofColumns, Number of DataPoints }
- ChartFX1.OpenData[COD_VALUES] := makelong(NumCols-1,NumRecs);
- ChartFX1.ThisSerie := ColCntr; {- Tell ChartFx to expect Data -}
- {- For the Current Series -}
-
- NumRecs := 0; {- Initialise the Data Counter -}
- Query1.First;
- repeat
- {- Fill Labels -}
- ChartFX1.Legend[NumRecs] := Query1.Fields[0].AsString;
- {- Fill Data Columns -}
- ChartFX1.Value[NumRecs] := Query1.Fields[ColCntr+1].AsFloat;
- NumRecs := NumRecs + 1; {- Advance the Data Counter -}
- Query1.Next;
- until Query1.EOF;
-
- { Maximum Value for Y Axis - Can Set ChartFx behaviour at RunTime
- ChartFX1.Adm[CSA_MIN] := 0;
- Graph.ChartFX1.Adm[CSA_MAX] := MaxVal; }
- { Graph Title's LEFT, Right, Top, Bottom }
- ChartFX1.Title[CHART_LEFTTIT] := Query1.Fields[1].FieldName;
- ChartFX1.Title[CHART_BOTTOMTIT] := Query1.Fields[0].FieldName;
- ChartFX1.Title[CHART_RIGHTTIT] := 'Example of TQuery With ChartFx';
- {Close The Data Channel For the current Series }
- ChartFX1.CloseData[0] := ColCntr;
- end;
-
- Query1.Active := False; {- Close The Query -}
-
- end;
-
-
- procedure TGraphForm.CloseBtnClick(Sender: TObject);
- begin
- Close;
- end;
-
- end.
-